// miniprogram/pages/login/login.js
const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {},
    hasUserInfo: false,
    canIUseGetUserProfile: false,
  },

  // 授权获得用户的头像和昵称等信息
  getUserProfile: function (e) {
    var that = this;
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res)
        that.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
        app.globalData.userInfo = that.data.userInfo;
        app.globalData.hasUserInfo = that.data.hasUserInfo;
        console.log(app.globalData.userInfo);
      }
    })
  },

  // 检查该用户是否已经绑定过住户信息
  hasBinded: function () {
    
    var that = this;
    // 调用云函数
    wx.cloud.callFunction({
      name: 'hasBinded',
      success: function (res) {
        console.log(res.result)
        if (res.result.errCode == 0) { // 正确获取了用户的唯一标识openId
          app.globalData.openId = res.result.data.openId;  // 将openId放入全局数据
          console.log(app.globalData.openId)
          if (res.result.data.exist) { // 用户已经绑定过社区住户信息
            that.setData({
              exist: true,
              household: res.result.data.household
            })
            app.globalData.household = that.data.household;
            that.goHome();
          } else {
            // 否则跳转到社区住户登录绑定界面
            that.goUserLogin();
          }
        } else {
          console.log("获取openid失败");
          // 弹出模态对话框提示用户重启小程序
          wx.showModal({
            title: '提示',
            content: '未能正确获取用户的openId，请重启小程序',
            showCancel: false,
            success(res) {
              if (res.confirm) {
                console.log('用户点击确定')
              }
            }
          })
        }
      },
    });
  },

  // 请求订阅消息授权
  requestSubscribeMessage: function() {
    var that = this;
    wx.requestSubscribeMessage({
      tmplIds: ['G-k-iA2k_ttXzCuwsvXfJnElrU6ORdrwunWFxdaRlIg'],
      success (res) {
        console.log("订阅消息授权成功");
        console.log(res);
      },
      fail (res) {
        console.log("订阅消息授权失败");
        console.log(res);
      }
    })
  },

  // 社区住户登录，如果该用户已经绑定了住户信息，则直接跳转到主界面，否则填写信息进行绑定
  householdLogin: function () {
    var that = this;
    that.requestSubscribeMessage();
    that.hasBinded();
  },

  // 来访人员登录，跳转到来访登记界面
  visitorLogin: function () {
    wx.navigateTo({
      url: "../visitorReg/visitorReg",
    })
  },

  // 跳转到住户登录界面
  goUserLogin: function () {
    wx.navigateTo({
      url: "../userLogin/userLogin"
    })
  },

  // 跳转到主界面
  goHome: function () {
    wx.switchTab({
      url: '../index/index'
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 如果已经获取了授权
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true,
      })
      console.log("获取头像昵称成功");
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})